<?php

declare(strict_types=1);

namespace app\middleware;

use think\facade\Db;

/**
 * 获取代理商配置
 */
class ApiAgentConfig
{
    /**
     * 处理请求
     *
     * @param \think\Request $request
     *
     * @return Response
     */
    public function handle($request, \Closure $next)
    {
        if ($request->agentChannel['settle_type'] == SETTLE_TYPE_PROFIT) {
            // 返佣，使用公司的支付账号：公司的微信支付账号分 JSAPI 和 H5 不同的账号
            $config = Db::name('config')
                ->where('type', 'wechat')
                ->column('value', 'field');
        } else {
            // 预充，使用客户的支付账号
            $config = Db::name('agent_config')
                ->where('agent_id', $request->agentChannel['agent_id'])
                ->find();
        }
        if (empty($config['app_id']) || empty($config['app_secret'])) {
            return fail('微信公众号尚未配置');
        }

        $request->agentConfig = $config;

        return $next($request);
    }
}
